import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'   
import './assets/global.less'
// 引入ElementUI 组件/样式    
import ElementUI from 'element-ui'   
import 'element-ui/lib/theme-chalk/index.css'

// 引入axios
import axios from 'axios'

// 添加请求拦截器
//使用拦截器统一带上token
axios.interceptors.request.use( function ( config ) { // 在发送请求之前做一些事情
  console.log(config)
  //如果有token 并且 路径是my开头的 才带上token
  const token = store.state.token 
  if(token && config.url.startsWith('/my')) {
    config.headers.Authorization = token
  }
  //config 一定要return
  return config;   
}, function ( error ) { 
    // 做一些请求错误的事情
    return Promise .reject(error );   
  });
    

// 添加响应拦截器
axios.interceptors.response.use( function ( response ) { 
  // 对响应数据执行操作
  return response;  
 }, function ( error ) { 
   // 对响应错误执行操作
    console.log('所有的错误响应在返回浏览器之前都会经过这里', error) 
    //判断是不是401的错误 是,返回登录页面
    if(error.response.status === 401) {
      router.push('/login')
    }
   return Promise .reject(error) ;  
  
  });


// 配置根路径
axios.defaults.baseURL = 'http://big-event-vue-api-t.itheima.net'
// 将axios挂载到vue.prototype上 Vue构造函数 prototype 原型对象
Vue.prototype.$axios = axios

// 注册
Vue.use(ElementUI)
Vue.config.productionTip = false
new Vue({
  router,
  store,
  render: (h) => h(App)
}).$mount('#app')
